﻿IF EXISTS (SELECT * FROM information_schema.ROUTINES WHERE ROUTINE_TYPE = 'PROCEDURE' AND ROUTINE_NAME = 'OTTerminate')
	BEGIN
		DROP  Procedure  OTTerminate
	END
GO


CREATE PROCEDURE OTTerminate   --........... TODO: Corregir este SP 	
	(	
		@empresaId AS INT,
		@numeroOT AS VARCHAR(30),
		@usuarioId AS VARCHAR(30)	
	)	
AS
BEGIN	
	SET NOCOUNT ON
	/*
	DECLARE @costoTotal AS DECIMAL(12,2)	
	DECLARE @costoUnitario AS DECIMAL(12,2)
	DECLARE @unidadesProducidas AS DECIMAL(12,2)
	DECLARE @articuloId AS VARCHAR(13)
	DECLARE @sucursalId AS INT
	DECLARE @bodegaId AS INT	
	DECLARE @id AS INT

	SELECT @id = id, @unidadesProducidas = UnidadesProducidas, @articuloId = ArticuloId
	FROM Lit_OT
	WHERE EmpresaId = @empresaId
	  AND NumeroOT = @numeroOT

	-- Actualiza el estado de la Orden de Trabajo
	UPDATE Lit_OT
	SET		Estado = 'T',
			FechaFinal = GETDATE()
	WHERE Id = @Id

	-- Extrae costos del producto
	EXEC RegistroOTCalculaCosto @empresaId, @numeroOT, @CostoTotal OUT	
	SET @CostoUnitario = (@CostoTotal / @UnidadesProducidas)
	
	
	-- Extrae Sucursal y Bodega del producto terminado de acuerdo a la tabla de parametros
	SELECT @sucursalId = SucursalId, @bodegaId = BodegaProductoTerminado 
	FROM lit_parametrosbodega
	WHERE EmpresaId = @empresaId
		
	-- Actualiza los costos
	EXEC ArticuloActualizaInventario @empresaId, @articuloId, @unidadesProducidas, @CostoUnitario
	
	-- Actualiza la existencia y genera Movimiento de ajuste por entrada
    EXEC Movimiento_Aplica_Por_OT @empresaId, @sucursalId, @bodegaId, @articuloId, @unidadesProducidas, @CostoUnitario, @numeroOT, @usuarioId
	*/
	SET NOCOUNT OFF
END
GO   